2.5 Die äußeren JOIN
s
Eine kleine Einleitung
Das Schlüsselwort INNER
weist darauf hin, dass
nur Zeilen ausgewählt werden, bei denen ein gemeinsamer Schlüsselwert in beiden zu
verknüpfenden Tabellen vorkommt. Das bedeutet für unser Beispiel, dass weder
Mitarbeiter ohne Abteilung, noch Abteilungen, für die keine Mitarbeiter existieren,
mit in die Ergebnisse aufgenommen werden.
Das scheint im ersten Moment vernünftig. Wenn man jedoch
darüber nachdenkt, so werden bestimmte Abfragen durch diese Einschränkung
unmöglich.
Man will vielleicht eine Liste von Mitarbeitern mit den dazugehörenden
Abteilungen aufstellen und man möchte natürlich auch die Mitarbeiter sehen,
für die – warum auch immer – keine entsprechende Abteilung zugeteilt wurde.
Beispielsweise könnte man dann entscheiden, eine neue Abteilung einzurichten.
Um auch Datensätze aufzunehmen, zu denen in der anderen Tabelle kein
Gegenstück existiert, benötigen wir weitere JOIN
s.
Hat etwa ein Objekt der ersten Tabelle kein Gegenstück in der
zweiten, wird es beim INNER JOIN
unter den Tisch fallen. Es werden ja nur
diejenigen Zeilen verknüpft, deren Schlüsselnummern in beiden
Tabellen vorkommen. Sollen aber auch diejenigen Zeilen aufgenommen werden, die
nur in einer der beiden Tabellen vorkommen, so sprechen wir vom
äußeren JOIN
(OUTER JOIN
).
Die nächsten zwei Abschnitte werden sich mit den äußeren Joins beschäftigen. Die Beispiele dazu sollten sie zum besseren Verständnis wieder in phpMyAdmin ausprobieren.
Achtung, äußere Verbünde sind nicht kommutativ, gerade die Position der Tabellen links oder rechts vom Schlüsselwort JOIN ist entscheidend!